package db.dao;

import db.dto.*;
import db.exceptions.*;

public interface NurseDao
{
	/** 
	 * Inserts a new row in the NURSE table.
	 */
	public int insert(NurseDto dto) throws NurseDaoException;

	/** 
	 * Updates a single row in the NURSE table.
	 */
	public void update(int pk, NurseDto dto) throws NurseDaoException;

	/** 
	 * Deletes a single row in the NURSE table.
	 */
	public void delete(int pk) throws NurseDaoException;

	/** 
	 * Returns the rows from the NURSE table that matches the specified primary-key value.
	 */
	public NurseDto findByPrimaryKey(int idNurse) throws NurseDaoException;

	/** 
	 * Returns all rows from the NURSE table that match the criteria ''.
	 */
	public NurseDto[] findAll() throws NurseDaoException;

	/** 
	 * Returns all rows from the NURSE table that match the criteria 'ID_DEPARTMENT = :idDepartment'.
	 */
	public NurseDto[] findByDepartment(int idDepartment) throws NurseDaoException;

	/** 
	 * Returns all rows from the NURSE table that match the criteria 'ID_NURSE = :idDoctor'.
	 */
	public NurseDto[] findByPerson(int idNurse) throws NurseDaoException;

	/** 
	 * Returns all rows from the NURSE table that match the criteria 'ID_NURSE = :idDoctor'.
	 */
	public NurseDto[] findWhereIdNurseEquals(int idNurse) throws NurseDaoException;

	/** 
	 * Returns all rows from the NURSE table that match the criteria 'ID_DEPARTMENT = :idDepartment'.
	 */
	public NurseDto[] findWhereIdDepartmentEquals(int idDepartment) throws NurseDaoException;

	/** 
	 * Sets the value of maxRows
	 */
	public void setMaxRows(int maxRows);

	/** 
	 * Gets the value of maxRows
	 */
	public int getMaxRows();

	/** 
	 * Returns all rows from the NURSE table that match the specified arbitrary SQL statement
	 */
	public NurseDto[] findByDynamicSelect(String sql, Object[] sqlParams) throws NurseDaoException;

	/** 
	 * Returns all rows from the NURSE table that match the specified arbitrary SQL statement
	 */
	public NurseDto[] findByDynamicWhere(String sql, Object[] sqlParams) throws NurseDaoException;

}
